home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / STANDALO / PIXELFLI / SOURCE_ / NEW_CDEV / DEVICEMG.H < prev   
Text File  |  1990-11-09  |  3KB  |  164 lines

  1.  
  2. /*
  3.  *  DeviceMgr.h
  4.  *
  5.  *  Copyright (c) 1989 Symantec Corporation.  All rights reserved.
  6.  *
  7.  *  These interfaces are based on material copyrighted
  8.  *  by Apple Computer, Inc., 1985-1989.
  9.  *
  10.  */
  11.  
  12. #ifndef _DeviceMgr_
  13. #define _DeviceMgr_
  14.     
  15. #ifndef    _MacTypes_
  16. #include "MacTypes.h"
  17. #endif
  18.  
  19. #ifndef _OSUtil_
  20. #include "OSUtil.h"
  21. #endif
  22.  
  23.  
  24. /*  parameter block for Control/Status calls  */
  25. typedef struct
  26.     {
  27.     QElemPtr    qLink;
  28.     int            qType;
  29.     int            ioTrap;
  30.     Ptr            ioCmdAddr;
  31.     ProcPtr        ioCompletion;
  32.     OsErr        ioResult;
  33.     StringPtr    ioNamePtr;
  34.     int            ioVRefNum;
  35.     int            ioRefNum;
  36.     int            csCode;
  37.     int            csParam[11];
  38.     } cntrlParam, CntrlParam;
  39. #define ioCRefNum    ioRefNum
  40.  
  41. /*  csCode  */
  42. enum {
  43.     goodBye = -1,
  44.     killCode = 1,
  45.     accEvent = 64,
  46.     accRun,
  47.     accCursor,
  48.     accMenu,
  49.     accUndo,
  50.     accCut = 70,
  51.     accCopy,
  52.     accPaste,
  53.     accClear
  54. };
  55.  
  56.  
  57. /*  device control entry  */
  58. typedef    struct    DCtlEntry
  59.     {
  60.     Ptr                dCtlDriver;
  61.     int                dCtlFlags;
  62.     QHdr            dCtlQHdr;
  63.     long            dCtlPosition;
  64.     Handle            dCtlStorage;
  65.     int                dCtlRefNum;
  66.     long            dCtlCurTicks;
  67.     struct GrafPort    *dCtlWindow;
  68.     int                dCtlDelay;
  69.     int                dCtlEMask;
  70.     int                dCtlMenu;
  71.     } DCtlEntry ;
  72. typedef DCtlEntry *    DCtlPtr;
  73. typedef    DCtlPtr *    DCtlHandle;
  74.  
  75. /*  dCtlFlags bits  */
  76. #define    dNeedLock        0x4000
  77. #define dNeedTime        0x2000
  78. #define dNeedGoodBye    0x1000
  79. #define dStatEnable        0x0800
  80. #define dCtlEnable        0x0400
  81. #define dWritEnable        0x0200
  82. #define dReadEnable        0x0100
  83. #define drvrActive        0x0080
  84. #define dRAMBased        0x0040
  85. #define dOpened            0x0020
  86.  
  87. /*  traps  */
  88. #define aRdCmd            2
  89. #define aWrCmd            3
  90. #define asyncTrpBit        0x0400
  91. #define noQueueBit        0x0200
  92.  
  93. /*  result codes  */
  94. enum {
  95.     dceExtErr = -30,
  96.     unitTblFullErr,
  97.     notOpenErr,
  98.     abortErr,
  99.     dInstErr,
  100.     dRemovErr,
  101.     closeErr,
  102.     openErr,
  103.     unitEmptyErr,
  104.     badUnitErr,
  105.     writErr,
  106.     readErr,
  107.     statusErr,
  108.     controlErr
  109. };
  110.  
  111. /*  chooser interface  */
  112. enum {
  113.     chooserID = 1,        /*  caller value for chooser  */
  114.     newSelMsg = 12,        /*  message values  */
  115.     fillListMsg,
  116.     getSelMsg,
  117.     selectMsg,
  118.     deselectMsg,
  119.     terminateMsg,
  120.     buttonMsg = 19
  121. };
  122.  
  123. /*  cdev message types  */
  124. enum {
  125.     initDev,
  126.     hitDev,
  127.     closeDev,
  128.     nulDev,
  129.     updateDev,
  130.     activDev,
  131.     deactivDev,
  132.     keyEvtDev,
  133.     macDev,
  134.     undoDev,
  135.     cutDev,
  136.     copyDev,
  137.     pasteDev,
  138.     clearDev,
  139.     cursorDev
  140. };
  141.  
  142. /*  cdev error codes  */
  143. #define cdevGenErr        (-1)
  144. #define cdevMemErr        0
  145. #define cdevResErr        1
  146. #define cdevUnset        3
  147.  
  148.  
  149. /*  functions returning non-integral values  */
  150. pascal DCtlHandle GetDCtlEntry();
  151.  
  152. /*  low-memory globals  */
  153. extern DCtlHandle *UTableBase : 0x11C;
  154. extern ProcPtr Lvl1DT[] : 0x192;
  155. extern ProcPtr Lvl2DT[] : 0x1B2;
  156. extern int UnitNtryCnt : 0x1D2;
  157. extern Ptr VIA : 0x1D4;
  158. extern Ptr SCCRd : 0x1D8;
  159. extern Ptr SCCWr : 0x1DC;
  160. extern Ptr IWM : 0x1E0;
  161. extern ProcPtr ExtStsDT[] : 0x2BE;
  162.  
  163.  
  164. #endif _DeviceMgr_